Unreal Version 222 Release Notes
Useful Information
Fixes and Improvements
General
- Fixed new problem in 220 where users who had performed a partial install of Unreal (with
maps kept on the CD) didn't see any maps listed in the Deathmatch/BotMatch menus.
- "FOV #" command now takes effect permanently.
- Minigun and stinger sounds are now properly replicated to all clients.
- Botmatch skill bug in 220 fixed.
- Lookspring fixed.
- Kevlar vest pickup sound and dead guy in Vortex Rikers sound fixed.
- Bubbles now float properly on clients.
- Fixed projectiles not appearing on client side because local player ran into them.
- Carcasses are now simulated for smoother death animations, and all the nali and skaarj
gibs are properly replicated.
- Fixed bug where quick taps of fire button didn't register in network games.
- Slightly reduced damage multiplier in Hardcore mode (150% instead of 170%), and rocket
damage radius in Classic mode is back to the old value.
- Fixed razorjack sound crash problem with 3D sound.
- Fixed problem where the editor light torches were showing up in some levels in network
play.
- Fixed client prediction going through portals.
- Eliminated menu bar when playing in windowed mode.
- Fixed inability to join a network game while you are running a non-dedicated server.
Video
- Fixed menu bar disappearing when switching from Glide to the software renderer.
- Fixed potential crash while taking screenshots on 3dfx.
- Works properly on Voodoo3. Voodoo3 support was broken in Unreal 209 through 220.
OpenGL Beta Driver
- New, rewritten OpenGL driver.
- Works quite well on the Riva TNT. Important: you need the latest TNT Detonator drivers
from NVidia's web site for this to work.
- Other cards are in the early testing phase now. Don't expect a lot. We can't provide
support for getting Unreal OpenGL running on other cards or answer questions about them at
this time.
Networking
- Fixed remote administration (didn't accept password).
- Fixed administrator "Kick <playername>" crash.
- Fixed dedicated server potential crash when player limit is reached.
- Added "userini=<inifilename>" command-line parameter to set user
configuration file.
Scripting
- Fixed "Unreal -make" lockup with class names over 32 characters.
- The new keyword "native" is now synonymous with "intrinsic", and the
Unreal 1 scripts have been updated to reflect this.
- In network play, on the client side, static functions are always called locally and
never sent across the network, regardless of the calling actor's replication statements.
- Fixed compiler logic error which caused bool variables within structs to appear to
always be zero.
- Removing "abstract" keyword from a class and recompiling now works.
- Player classes with no mesh no longer hard-coded to use name "Spectator" in
mesh menu. Instead, the pawn MenuName attribute is used as the string representation
for all playerpawn classes.
- All strings are now dynamically sized, meaning there is no longer any limit to their
length. Declaring strings with the syntax "string[255]" is now obsolete;
just use "string".
- The Chr() function converts generates a one-character string whose first character is
the ASCII/Unicode value you specify. Exception: Chr(0) returns a zero-length string.
- The Asc() function returns the ASCII/Unicode character code of the first character of
the string you specify, or 0 if the string is empty.
- New array<type> construct for defining dynamically sizable arrays. This is
only implemented for configuration loading and C++ access; dynamic arrays aren't
accessible by script yet.
- Fixed broken EDITACTOR console command.
- Actor class now contains MultiSkins array enabling multiple skins to be applied to
meshes. Not used in any Unreal 1 classes, though. Will be exploited in Unreal Tournament.
- New string concatenation operator "@" concatenates two strings (like
"$") but adds a space between them (unlike "$").
Installer
- Reduced virtual memory usage (was unreasonably high).
- Progress window is now updated as the patch installs.
- New standalone installer.
- Supports selectable groups.
- Supports partial installation.
- Does not yet support user mod installation. Probably will happen along with Unreal
Tournament.
C++ General Changes
- Changed "INTRINSIC" macro to "DECLARE_FUNCTION", and
"AUTOREGISTER_INTRINSIC" to "IMPLEMENT_FUNCTION" (to follow the
convention set by DECLARE_CLASS and IMPLEMENT_CLASS).
- Changed all occurances of "intrinsic" to "native" (moving toward the
Java convention).
- Moved FBitReader, FBitWriter archives to Core.
- Improved generality of appCeilLogTwo.
- Command-line compiler is now invoked with "ucc make" rather than the old
"unreal -make". This is now a non-windowed, command-line application. You can
run it as an external tool through Visual C++, and direct the outputs to the results
window. This is the preferred mode of operation, because the compiler now outputs error
messages in Visual C++'s standard error format, enabling you to double-click on the error
message in the VC++ IDE and jump right to the error.
- The compiler now generates warnings when you do things that are dangerous but non-fatal,
for example using "#exec" commands to import non-existant files.
- All UnrealScript strings are now represented internally as FString structures, which
manage dynamic, variable-length, infinitey-expandable strings. This impacts all
auto-generated C++ headers such as EngineClasses.h.
- Static functions are always called in network play, regardless of their replication and
simulatedness.
- Warning: Strings greater than approximately 400 characters won't be replicated in
network play. They won't fit in packets.
- UnrealScript interpretter has been modified, improved, and optimized to handle data
types which need to be dynamically constructed and destructed on the stack frame, such as
dynamic strings (now) and dynamic arrays (coming later).
- Improved and generalized TMap, a template for mapping arbitrary keys to arbitrary
values. Considering exposing to UnrealScript later.
- appAlloca works like the ANSI C alloca. Useful for allocating temporary memory on stack.
C++ Unicode Changes
- All the C++ code now compiles under Unicode by default.
- ANSICHAR=8-bit signed ANSI character.
- UNICHAR=16-bit unsigned Unicode character.
- TCHAR=Either ANSICHAR or UNICHAR depending on compile options; currently always UNICHAR.
- All of the Visual C++ projects define UNICODE and _UNICODE.
- Since Windows 95/98 do not support most of the Windows API Unicode entry points, there
are a lot of checks of the variable GUnicodeOS which is 0 when running the Unicode version
of Unreal on a non-Unicode OS like Windows 95/98. There are also macros like TCHAR_CALL_OS
which calll the appropriate ANSI/Unicode function depending on OS support.
- ATcpLink and AUdpLink text exchange functions use ANSI text exclusively.
End